home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
d86.arc
/
AREAD_ME.DOC
< prev
next >
Wrap
Text File
|
1986-11-16
|
14KB
|
269 lines
D86 debugger package V2.17 November 16, 1986
The entire package is Copyright (C)1986 Eric Isaacson. All rights reserved.
Introduction
This is a preliminary test copy of D86. D86 is the finest debugger available,
under any terms at any price, for the IBM-PC and compatibles. I call it a
preliminary copy because it does not yet meet my standards for professional-
quality software. (If you examine this package, though, you'll deduce that
my standards are high.) I am releasing this version now because:
a. I promised my registered A86 users that I would; and
b. D86 is already considerably better than anything else on the market.
In fact, I consider it to be a milestone in debugger technology. It
would be cruel of me to withhold it any longer.
Those of you who have already registered for A86 are, under the terms of my
inaugural A86 offer, also registered for this D86 package. It is your reward
for your quick support of a new software package. I thank you again, and I
hope to hear your comments and suggestions.
In contrast to software firms who attempt to restrict the distribution of
their software through protection schemes, I encourage free distribution,
and trust that those who use my products will pay for them. Please keep in
mind the fundamental good spirit of free-distribution software as you endure
the following barrage of legalities. Then evaluate the outstanding value that
the D86 package offers you. I assure you that you will not be disappointed.
Legal Terms and Conditions
This package is provided to you under the following conditions:
1. You may copy this entire package, and give it to anyone who accepts these
terms. The copies you distribute must be complete and unmodified. You
do not have to be registered to distribute this package.
2. You may execute the programs in this package, in order to evaluate them.
If you decide that any of this package is of use to you, you must become a
registered user by sending $40 US to:
Eric Isaacson
416 E. University Street
Bloomington, IN 47401
Registered users may order update-diskettes (5.25 inch, double density)
for $10 US, plus enough to cover extra postage if you are overseas. (In
other words, send $50 if you want to register and get an update-diskette.)
Once you register for this package, you are entitled to a life-time of
updates of this package, at $10 each, as long is I am in business and
willing to cash your $10 checks. (Well, let's make that 10 1986-dollars.
If rampant inflation sets in, I reserve the right to raise prices
accordingly.) Indiana residents add sales tax.
Because of the preliminary nature of this version of D86, I strongly
recommend that you add the $10 to your registration, to get the next version
as quickly as possible. D86 will be enhanced significantly in the coming
months. If you do order an update, be sure to specify in your order which
version you now have. If I feel that you are close enough to the current
version, I'll send you a postcard to that effect, and put you on my list for
first shipment of the next enhancement version.
To use D86, you must have the associated assembler, A86. A copy of A86
(without all of its documentation) is included in the D86 package. If you
are using D86 to debug only programs written in languages other than A86,
then you do not need to register for A86. If you are programming in A86,
then you must register for A86. There is a $10 discount for combined
registration of A86 and D86. Instead of $40+$40 = $80, the charge for both
packages is $70.
Educational institutions and training facilities MUST be registered in order
to use D86 in courses. Contact me for special terms.
Companies and government agencies MUST be registered in order to use D86 for
their work. Again, contact me for special terms.
3. You may not sell this package to anyone. If you distribute this package
on a diskette, any fees you collect must be specified as materials/handling,
and may not exceed $10 for the diskette.
4. You are completely responsible for determining the fitness or usability of
this package. I will not be liable for any damages, of any kind, arising
from any failure of any programs in this package to perform as expected.
Overview of D86
D86 is a screen-oriented program that allows you to troubleshoot faulty computer
programs written for the IBM-PC. It "freezes" the state of your program, and
allows you to investigate the values of registers, flags, and memory. You can
monitor your program's execution by stepping it one instruction or procedure at
a time; or you can start your program running, telling D86 to stop it when it
reaches certain locations. D86 recognizes the symbol-table output of the A86
assembler, creating a symbolic disassembly of your A86 program, and allowing
you to refer to locations and variables by name.
The primary design criterion for D86 is ease of use. This is reflected in the
most notable features of D86:
* You don't need to ask D86 what the values of registers and flags are. They
are there, automatically, at a fixed location on the screen.
* You don't need to ask D86 where in your program you are stopped. A
disassembly is always generated, at another fixed location on the screen.
The disassembly gives a hefty chunk of your program, not just the single
instruction you are at. A cursor next to the disassembly marks the current
location. The disassembly chunk remains fixed as you step though it,
allowing you to follow the flow of the program much more easily. If you
wrote the program using A86, the disassembly is symbolic, giving instruction
operands by name, and labelling disassembly locations when possible.
* You don't need to ask D86 what is on the machine stack. A display of the top
elements of the stack is always generated, at yet another fixed location
on the screen.
* You can set up windows into memory, displaying memory contents in a variety of
types. The types can even be mixed, to display complicated structures.
The windows will stay at the same location until you turn them off, allowing
you to watch what your program is doing to those memory locations.
* You can, at any time, enable a help-window, to guide you through debugger
commands. You will be astounded by the sophistication of this help-facility,
especially since other debuggers offer no on-line help whatsoever.
* All of the above-mentioned windows exist on the screen at the same time. You
don't have to switch between them.
* You can single-step your program with single keystrokes, rather than sequences
of arcane commands. There are several flavors of single-step keys, clustered
together on the function-keypad. This, combined with the automatic nature of
the display, allows you to single-step very quickly. You feel like you are
actually watching your program run.
* Much of D86's command langauge is simply the A86 assembly language itself.
You can type in any A86 instruction, to be executed immediately. You use this
to set registers and variables, perform arithmetic, jump to another location,
etc. The immediate-execution feature makes D86 the most effective tool
available for teaching 86 architecture: the student can watch the effects of
instructions on registers, flags, and memory.
* You can patch programs in memory, using the full power of the A86 assembly
language.
To give you a balanced view of D86, I shall now list its limitations, including
the reasons why I don't think it is of full product-quality yet.
* D86 needs to be tested on a wide variety of hardware. Both screen-oriented
programs and debuggers are very finicky to implement; since D86 is both, it
is doubly finicky. Unlike A86, which interacts with the machine purely
through MS-DOS function calls, D86 operates at a low level. It makes BIOS
calls, it writes directly to video memory, it reads the video controller chip
directly, and it creates and intercepts interrupts. I expect occasional
trouble when people start running D86 on machines I haven't tried yet. I want
to hear about all such machines; and I want to get D86 running on as many
machines as possible.
* D86 has restrictions on usage that don't have to (and hence shouldn't) be
there. First, the associated assembler A86 must be in one of two directories:
either the current directory, or in C:\BIN. D86 should look in any directory
specified by the PATH variable, but it doesn't, yet. Second, D86 currently
reads only .COM files; it doesn't read .EXE files yet.
* D86 disassembles, and allows single-stepping of, the floating-point
instruction set; but it does not display the values of the floating-point
stack! That's unprofessional. There is a reason, other than lack of time,
for this omission: I can't afford an 80287 chip, yet. So here's an OFFER: if
you get together with some friends to buy 4 registrations, or if you get your
company to buy a site license for A86, you can say, "OK, Eric, use the money
to buy yourself a 287." If anybody does so before I have bought a 287 on my
own, they will receive D86 with full floating support at least 30 days before
the rest of the world gets it.
* D86's status and error reporting is not what I think it should be. D86 should
tell you the name of the program you're debugging. You should be able to get
a display of which permanent breakpoints are set. When the program is
trapped by D86, you should be told why the trap took place. If you type in
an erroneous debugger command, you should be given an error message.
* D86 is still an incomplete subset of my ultimate vision for a debugger.
First, I have big plans for the window that now shows only the sign-on
message and the help-screens. In non-help mode, you should be able to toggle
through whichever of the following displays is appropriate for your machine:
-- an expanded memory window
-- a debugger status window
-- a second disassembly window
-- the floating-point stack and status registers
-- the 286 protection registers and data structures
Second, I plan to fill out the alphabet of debugger commands, and the
keyboard-full of function keys. Some commands I have in mind are:
-- save and play back keyboard scripts
-- do sophisticated memory searches
-- gateway to DOS, with EXIT back to debugging session
-- more exotic stepping and trapping commands
-- write a patched program or symbol table back to the disk
-- save and switch to/from the program's full screen
-- expression arithmetic (and indirection) in all operands
I am eager to hear your ideas for what you'd like to see in terms of expanded
features. I will consider all requests.
Who IS That Guy?
For those of you who wish to know what credentials I have for producing
programs that meet the above claims, let me tell you who I am. I am
an independent software consultant. I have worked with Intel microprocessors
since the early days of the 8080. As an employee of Intel, I was a part of
the two-man team that implemeted the first ASM86 assembler. I am one of the
world's leading authorities on the entire 86-family of microcomputers, having
completed numerous major projects involving the 8086, and 80186, and the
80286. I am currently under contract with Wiley and Sons, publishers, to
write a book on the 386 architecture.
A86 and D86 themselves are mature, solid programs. They have been in
existence for over 2 years, running first under my own, proprietary operating
system; then later under the Xenix operating system on Altos computers, used
by myself and my clients.
Although I have been unknown to the world of the IBM-PC until now, I intend
to change all that in the next couple of years. Peter Norton, watch out.
Support Your Local Bulletin Board
Bob Breedlove, a BBS Sysop in California, sent me a suggestion with his
registration: that I do something to support Sysops, since they are distributing
my software for me. Good point, Bob. Let me try this experiment (but I reserve
the legal right to cancel this offer at any time, without notice): if anybody
who registers wishes to support the BBS from which they obtained my program,
they should tell me the name and phone number of the BBS when they register.
They should also leave a message to the Sysop that they have done so, so the
Sysop can contact me with his/her address. If I receive 5 registrations naming
a particular BBS, I'll award a free registration to the Sysop-- the Sysop can
designate who the registration is for; or (if the Sysop has already paid for a
registration) he/she can elect to receive a cash refund. For each subsequent 5
registrations, I'll send the Sysop a cash rebate equal to one half the
registration fee. Sorry, no bonuses for less than 5 registrations; I don't want
to be swamped with paperwork.
How to Get in Touch With Me
I would love to hear about what you think of my products. But please remember
that telephone support takes time; and I don't have the money to hire a support
staff. The most obvious way for you to communicate to me is to include your
comments with your registration. Another way to communicate with me is to leave
a message, addressed to me, on the Bloomington PC-Link Central bulletin board,
at (812)824-7990; or Indiana On-Line, at (812)332-7227. I'll try to promptly
answer the questions of any REGISTERED users, either via the bulletin board, or
by return mail if you send me a self-addressed, stamped envelope.
What to Read Next
Read the file CONTENTS.DOC for an description of all the files in this package.
The file D86LIST.BAT will print the documentation files, in the order that they
are presented in the table of contents.
The file DEMO.DOC will guide you through a D86 session, showing you some of the
features of D86.